Page({
  data: {
    showAuthTip: false,
    tipText: '',
    showPhoneButton: false,
    userInfo: null
  },

  onLoad: function() {
    // 页面加载时检查是否已有登录信息
    const token = wx.getStorageSync('token');
    if (token) {
      // 已登录，跳转到主页
      wx.switchTab({
        url: '/pages/customer/index'
      });
    }
  },

  // 获取用户基本信息
  onGetUserInfo: function(e) {
    if (e.detail.errMsg !== 'getUserInfo:ok') {
      console.log('用户拒绝授权', e.detail);
      this.showTip('请授权获取头像和昵称信息', 3000);
      return;
    }
    
    // 用户已授权，保存用户信息
    const userInfo = e.detail.userInfo;
    this.setData({
      userInfo: userInfo,
      showPhoneButton: true
    });
    
    // 显示提示
    this.showTip('请继续授权获取手机号', 2000);
  },

  // 获取用户手机号
  onGetPhoneNumber: function(e) {
    if (e.detail.errMsg !== 'getPhoneNumber:ok') {
      console.log('用户拒绝授权手机号', e.detail);
      this.showTip('为了更好的服务体验，建议授权手机号', 3000);
      // 即使用户拒绝手机号授权，也可以继续登录
      this.proceedToLogin();
      return;
    }
    
    // 用户已授权手机号
    const encryptedData = e.detail.encryptedData;
    const iv = e.detail.iv;
    
    // 调用wx.login获取code
    wx.login({
      success: (res) => {
        if (res.code) {
          // 调用后端登录接口，包含手机号信息
          const app = getApp();
          app.loginWithPhone(res.code, this.data.userInfo, encryptedData, iv, (loginRes) => {
            // 登录成功，跳转到主页
            wx.switchTab({
              url: '/pages/customer/index'
            });
          });
        } else {
          console.log('登录失败！' + res.errMsg);
          wx.showToast({
            title: '登录失败，请重试',
            icon: 'none'
          });
        }
      },
      fail: (err) => {
        console.error('wx.login调用失败', err);
        wx.showToast({
          title: '登录失败，请检查网络',
          icon: 'none'
        });
      }
    });
  },

  // 不获取手机号也继续登录
  proceedToLogin: function() {
    // 调用wx.login获取code
    wx.login({
      success: (res) => {
        if (res.code) {
          // 调用后端登录接口
          const app = getApp();
          app.login(res.code, this.data.userInfo, (loginRes) => {
            // 登录成功，跳转到主页
            wx.switchTab({
              url: '/pages/customer/index'
            });
          });
        } else {
          console.log('登录失败！' + res.errMsg);
          wx.showToast({
            title: '登录失败，请重试',
            icon: 'none'
          });
        }
      },
      fail: (err) => {
        console.error('wx.login调用失败', err);
        wx.showToast({
          title: '登录失败，请检查网络',
          icon: 'none'
        });
      }
    });
  },

  // 显示提示信息
  showTip: function(text, duration = 3000) {
    this.setData({
      showAuthTip: true,
      tipText: text
    });
    
    // duration秒后隐藏提示
    setTimeout(() => {
      this.setData({
        showAuthTip: false
      });
    }, duration);
  },

  onAgreement: function() {
    // 跳转到用户协议页面
  },

  onPrivacy: function() {
    // 跳转到隐私政策页面
  }
})